[INV-BACKEND-032] Создать метод VerifyStockAvailability

Разработка gRPC-метода реактивной пакетной проверки и блокировки остатков

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи

  • Инструкция по шагам:
    1. Принять gRPC-запрос, содержащий массив menu_required_items (ID продуктов и требуемые объемы) и space_type. Открыть атомарную транзакцию в PostgreSQL Fridge DB.
    2. На Шаге 11: Выполнить агрегированный запрос проверки текущих остатков в таблице fridge_inventory по всем переданным ID продуктов суммарно для текущей группы.
    3. На Шаге 12а (Блокировка OFFICE): Если space_type == "OFFICE" и хотя бы по одному продукту из массива требуемый объем превышает суммарный текущий остаток на полках (quantity), немедленно прервать транзакцию (ROLLBACK) и вернуть gRPC-статус FAILED_PRECONDITION с детализацией дефицитных позиций.
    4. На Шаге 12б (Каскад HOME / Валидный OFFICE): Если продуктов достаточно, либо если space_type == "HOME" (где дефицит разрешен), запустить каскадный FIFO-вычет для всего пакета продуктов. Выполнить COMMIT транзакции в fridge_db и вернуть успешный gRPC-ответ (Шаг 13б).